﻿using System;
using System.Collections.Generic;
using Neturion.Dados;

namespace Neturion.IRepositorios
{
    public interface IRepositorioCliente : IRepositorio<Cliente, int>
    {
        IList<Cliente> ObterTodos(int inicio, int quantidade, int quantidadeMinima, string nomeRazaoSocial,
                                     string apelidoFantasia, string nomeReduzido, string cpfCnpj, Midia midia,
                                     EnumTipoPessoa enumTipoPessoa,
                                     RamoAtividade ramoAtividade,
                                     DateTime? dataNascimentoAberturaDe, DateTime? dataNascimentoAberturaAte,
                                     DateTime? cadastroDe, DateTime? cadastroAte,
                                     DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte,
                                     DateTime? fimVigenciaDe, DateTime? fimVigenciaAte);
        Cliente ObterPorCpfCnpj(string cpfCnpj);
        Cliente ObterPorPessoa(Pessoa pessoa);
        IList<Cliente> ObterPorRamoAtividade(RamoAtividade ramoAtividade);
        int ObterUltimoIdCodigoInteiro();
        Cliente ObterPorCodigo(string codigo);
    }
}